What is acorn-node?
The acorn-node package is an extension of the popular Acorn JavaScript parser, tailored specifically for Node.js environments. It includes additional support for parsing Node.js-specific syntax and features, making it an ideal choice for developers working on Node.js applications who need to analyze or manipulate JavaScript code programmatically.
What are acorn-node's main functionalities?
Parsing JavaScript
This feature allows you to parse a string of JavaScript code into an abstract syntax tree (AST), which can then be analyzed or manipulated. This is useful for tools that need to understand or transform JavaScript code.
const { parse } = require('acorn-node');
const AST = parse('const x = 1;');
Node.js Syntax Support
acorn-node extends Acorn to support Node.js-specific syntax, such as the `require` function. This makes it particularly useful for analyzing or transforming Node.js codebases.
const { parse } = require('acorn-node');
const AST = parse('require("path");', { ecmaVersion: 2020 });
Other packages similar to acorn-node
esprima
Esprima is a high performance, standard-compliant ECMAScript parser that also offers syntax tree generation. Compared to acorn-node, Esprima supports a wide range of ECMAScript standards but does not have specific optimizations or extensions for Node.js environments.
acorn-node
Acorn preloaded with plugins for syntax parity with recent Node versions.
It also includes versions of the plugins compiled with Bublé, so they can be run on old Node versions (0.6 and up).
Install
npm install acorn-node
Usage
var acorn = require('acorn-node')
The API is the same as acorn, but the following syntax features are enabled by default:
- Bigint syntax
10n
- Numeric separators syntax
10_000
- Public and private class instance fields
- Public and private class static fields
- Dynamic
import()
- The
import.meta
property export * as ns from
syntax
And the following options have different defaults from acorn, to match Node modules:
ecmaVersion: 2019
allowHashBang: true
allowReturnOutsideFunction: true
var walk = require('acorn-node/walk')
The Acorn syntax tree walker. Comes preconfigured for the syntax plugins if necessary.
See the acorn documentation for details.
License
The files in the repo root and the ./test folder are licensed as Apache-2.0.
The files in lib/ are generated from other packages: